package com.leinao.project.model;

import java.io.Serializable;
import java.util.List;

/**
 * 项目
 */
public class Project implements Serializable {
	
	
    /**
	 * 
	 */
	private static final long serialVersionUID = -2593586098255882744L;
	

	/**
     * 主键
     */
    private Long id;

    /**
     * 项目名称
     */
    private String projectName;
    /**
     * 语言
     */
    private String language;
    /**
     * 算法框架
     */
    private String algorithm;
    
    /**
     * owner
     */
    private String userId;

    /**
     * 简介
     */
    private String profile;
    
    /**
     * 类型
     */
    private Integer type;

    /**
     * 代码所在位置路径
     */
    private String filePath;

    /**
     * 项目模板配置
     */
    private String config;

    /**
     * 笔记
     */
    private String notes;

    /**
     * 所选数据集ID集合
     */
    private List<Long> dataSetIdList;

    /**
     * 创建时间
     */
    private Long createTime;

    /**
     * 更新时间
     */
    private Long updateTime;
    
    
    /**
     * 删除标记
     */
    private Integer delFlag;

    /**
     * 项目创建来源：参照com.leinao.constant.ProjectOriginEnum
     */
    private Integer origin;

    /**
     * 代码仓库地址
     */
    private String gitRepository;

    /**
     * 代码仓库分支标签
     */
    private String gitTag;

    /**
     * 代码仓库时间戳
     */
    private String gitTimestamp;

    /**
     * 引用output项目id
     */
    private Long quoteProjectId;
    /**
     * 引用output项目的任务id
     */
    private Long quoteProjectJobId;

    private String username;

    public Long getQuoteProjectId() {
        return quoteProjectId;
    }

    public void setQuoteProjectId(Long quoteProjectId) {
        this.quoteProjectId = quoteProjectId;
    }

    public Long getQuoteProjectJobId() {
        return quoteProjectJobId;
    }

    public void setQuoteProjectJobId(Long quoteProjectJobId) {
        this.quoteProjectJobId = quoteProjectJobId;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getProjectName() {
        return projectName;
    }

    public void setProjectName(String projectName) {
        this.projectName = projectName == null ? null : projectName.trim();
    }
    
    public String getUserId() {
		return userId;
	}

	public void setUserId(String userId) {
		this.userId = userId;
	}

	public String getProfile() {
        return profile;
    }

    public void setProfile(String profile) {
        this.profile = profile == null ? null : profile.trim();
    }

    public String getFilePath() {
        return filePath;
    }

    public void setFilePath(String filePath) {
        this.filePath = filePath == null ? null : filePath.trim();
    }

    public String getConfig() {
        return config;
    }

    public void setConfig(String config) {
        this.config = config;
    }

    public String getNotes() {
        return notes;
    }

    public void setNotes(String notes) {
        this.notes = notes;
    }

    public List<Long> getDataSetIdList() {
        return dataSetIdList;
    }

    public void setDataSetIdList(List<Long> dataSetIdList) {
        this.dataSetIdList = dataSetIdList;
    }

    public Long getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Long createTime) {
        this.createTime = createTime;
    }

    public Long getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Long updateTime) {
        this.updateTime = updateTime;
    }
    
	public Integer getType() {
		return type;
	}

	public void setType(Integer type) {
		this.type = type;
	}
	
	public String getLanguage() {
		return language;
	}

	public void setLanguage(String language) {
		this.language = language;
	}

	public String getAlgorithm() {
		return algorithm;
	}

	public void setAlgorithm(String algorithm) {
		this.algorithm = algorithm;
	}
	
	public Integer getDelFlag() {
		return delFlag;
	}

	public void setDelFlag(Integer delFlag) {
		this.delFlag = delFlag;
	}

    public Integer getOrigin() {
        return origin;
    }

    public void setOrigin(Integer origin) {
        this.origin = origin;
    }

    public String getGitRepository() {
        return gitRepository;
    }

    public void setGitRepository(String gitRepository) {
        this.gitRepository = gitRepository;
    }

    public String getGitTag() {
        return gitTag;
    }

    public void setGitTag(String gitTag) {
        this.gitTag = gitTag;
    }

    public String getGitTimestamp() {
        return gitTimestamp;
    }

    public void setGitTimestamp(String gitTimestamp) {
        this.gitTimestamp = gitTimestamp;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    @Override
    public String toString() {
        return "Project{" +
                "id=" + id +
                ", projectName='" + projectName + '\'' +
                ", language='" + language + '\'' +
                ", algorithm='" + algorithm + '\'' +
                ", userId='" + userId + '\'' +
                ", profile='" + profile + '\'' +
                ", type=" + type +
                ", filePath='" + filePath + '\'' +
                ", config='" + config + '\'' +
                ", notes='" + notes + '\'' +
                ", dataSetIdList=" + dataSetIdList +
                ", createTime=" + createTime +
                ", updateTime=" + updateTime +
                ", delFlag=" + delFlag +
                ", origin=" + origin +
                ", gitRepository='" + gitRepository + '\'' +
                ", gitTag='" + gitTag + '\'' +
                ", gitTimestamp='" + gitTimestamp + '\'' +
                ", quoteProjectId=" + quoteProjectId +
                ", quoteProjectJobId=" + quoteProjectJobId +
                ", username='" + username + '\'' +
                '}';
    }
}